DOTween 文档

1、命名法

Tweener: 一个控制值并为其设置动画的补间动画。 Sequence: 一个特殊的补间,它不是控制一个值,而是控制其他补间并将它们作为一个组动画。 Tween: 表示TweenerSequence的通用词。 Nested tween: 嵌套的补间;序列中包含的补间。

前缀

前缀对于最大限度地利用IntelliSense非常重要,因此请尝试记住以下内容:

DO: 所有补间快捷方式的前缀(可以直接从已知对象(如变换或材质)启动的操作)。也是主DOTween类的前缀。

    transform.DOMoveX(100, 1);
    transform.DORestart();
    DOTween.Play();

Set: 可以链接到补间的所有设置的前缀(From除外,因为它作为设置应用但实际上不是设置)。

    myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();

On: 可以链接到补间的所有回调的前缀。

    myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);

2、DOTween.Init

第一次创建补间时,DOTween将使用默认值自动初始化自身。

如果您更喜欢自己初始化它(推荐),请在创建任何补间之前调用此方法一次(之后调用它将不起作用)。

考虑到您仍然可以使用DOTween的全局设置随时更改所有初始设置。

(可选)您可以链接SetCapacityInit方法,该方法允许设置最大Tweeners / Sequences初始容量(它与稍后调用DOTween.SetTweensCapacity相同)。

    static DOTween.Init(bool recycleAllByDefault = falsebool useSafeMode = true,
                         LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
    DOTween.Init();

    DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);

3、创建一个Tweener

TweenersDOTween的工作蚂蚁。他们获取属性/字段并将其设置为给定值。

截至目前,DOTween可以补间这些类型的值: floatdoubleintuintlongulongVector2 / 3/4QuaternionRectRectOffsetColorstring (其中一些值可以通过特殊方式进行补间)

此外,您可以创建自定义DOTween插件以补间自定义值类型

有3种方法来创建一个Tweener:在通用的方式,快捷方式和更多的通用方式。

A. 通用方式

这是最灵活的补间方式,允许你几乎任何值,公共或私有,静态或动态 (只是你知道,快捷方式实际上在后台使用通用方式)。

与快捷方式一样,通用方式具有FROM备用版本。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。

    static DOTween.To(getter,setter,to,float duration)

B. 快捷方式

DOTween包含一些已知Unity对象的快捷方式,如TransformRigidbodyMaterial。您可以直接从对这些对象的引用启动补间(这也将自动将对象本身设置为补间目标),如:

    transform.DOMove(new Vector3(2,3,4), 1);
    rigidbody.DOMove(new Vector3(2,3,4), 1);
    material.DOColor(Color.green, 1);

除非另有说明,否则这些快捷方式中的每一个都具有FROM备用版本。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。

重要提示:当您将一个FROM分配给补间时,目标将立即跳转到FROM位置(就像“编写该行代码的那一刻”,而不是“补间开始的那一刻”)。

    transform.DOMove(new Vector3(2,3,4), 1).From();
    rigidbody.DOMove(new Vector3(2,3,4), 1).From();
    material.DOColor(Color.green, 1).From();

基本元素快捷方式

AudioMixer(Unity 5)

    DOSetFloat(string floatName, float to, float duration)

AudioSource

    DOFade(float to, float duration)
    DOPitch(float to, float duration)

Camera

    DOAspect(float to, float duration)
    DOColor(Color to, float duration)
    DOFarClipPlane(float to, float duration)
    DOFieldOfView(float to, float duration)
    DONearClipPlane(float to, float duration)
    DOOrthoSize(float to, float duration)
    DOPixelRect(Rect to, float duration)
    DORect(Rect to, float duration)
    DOShakePosition(float duration, float/Vector3 strength, int vibrato, bool fadeOut)
    DOShakeRotation(float duration, float/Vector3 strength, int vibrato, float randomness bool fadeOut)

Light

    DOColor(Color to, float duration)
    DOIntensity(float to, float duration)
    DOShadowStrength(float to, float duration)
可混合的补间
    DOBlendableColor(Color to, float duration)

LineRenderer

    DOColor(Color2 startValue, Color2 endValue, float duration)

Material

    DOColor(Color to, float duration)
    DOColor(Color to, string property, float duration)
    DOFade(float to, float duration)
    DOFade(float to, string property, float duration)
    DOFloat(float to, string property, float duration)
    DOGradientColor(Gradient to, float duration)
    DOGradientColor(Gradient to, string property, float duration)
    DOOffset(Vector2 to, float duration)
    DOOffset(Vector2 to, string property, float duration)
    DOTiling(Vector2 to, float duration)
    DOTiling(Vector2 to, string property, float duration)
    DOVector(Vector4 to, string property, float duration)
可混合的补间
    DOBlendableColor(Color to, float duration)
    DOBlendableColor(Color to, string property, float duration)

Rigidbody 这些快捷方式在后台使用刚体的MovePosition / MoveRotation方法,以正确设置与物理对象相关的内容。

Move

    DOMove(Vector3 to,float duration,bool snapping)
    DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
    DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

Rotate

    DORotate(Vector3 to, float duration, RotateMode mode)
    DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)
PRO ONLY ➨ Spiral – no FROM
    DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)

Rigidbody2D 这些快捷方式在后台使用rigidbody2DMovePosition / MoveRotation方法,以正确设置与物理对象相关的内容。

Move

    DOMove(Vector2 to,float duration,bool snapping)
    DOMoveX / DOMoveY(float to,float duration,bool snapping)
    DOJump(Vector2 endValue,float jumpPower,int numJumps,float duration,bool snapping)

Rotate

    DORotate(float toAngle, float duration)

SpriteRenderer

    DOColor(Color to, float duration)
    DOFade(float to, float duration)
    DOGradientColor(Gradient to, float duration)

可混合的补间

    DOBlendableColor(Color to, float duration)

TrailRenderer

    DOResize(float toStartWidth, float toEndWidth, float duration)
    DOTime(float to, float duration)

Transform Move

    DOMove(Vector3 to,float duration,bool snapping)
    DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
    DOLocalMove(Vector3 to,float duration,bool snapping)
    DOLocalMoveX / DOLocalMoveY / DOLocalMoveZ(float to,float duration,bool snapping)
    DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)
    DOLocalJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

Rotate

    DORotate(Vector3 to, float duration, RotateMode mode)
    DORotateQuaternion(Quaternion to, float duration)
    DOLocalRotate(Vector3 to, float duration, RotateMode mode)
    DOLocalRotateQuaternion(Quaternion to, float duration)
    DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)

Scale

    DOScale(float/Vector3 to, float duration)
    DOScaleX/DOScaleY/DOScaleZ(float to, float duration)

Punch – no FROM

    DOPunchPosition(Vector3 punch, float duration, int vibrato, float elasticity, bool snapping)
    DOPunchRotation(Vector3 punch, float duration, int vibrato, float elasticity)
    DOPunchScale(Vector3 punch, float duration, int vibrato, float elasticity)

Shake – no FROM

    DOShakePosition(float duration, float/Vector3 strength, int vibrato, float randomness, bool snapping, bool fadeOut)
    DOShakeRotation(float duration, float/Vector3 strength, int vibrato, float randomness, bool fadeOut)
    DOShakeScale(float duration, float/Vector3 strength, int vibrato, float randomness, bool fadeOut)

Path – no FROM

    DOPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null)
    DOLocalPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null)

可混合的补间

    DOBlendableMoveBy(Vector3 by,float duration,bool snapping)
    DOBlendableLocalMoveBy(Vector3 by,float duration,bool snapping)
    DOBlendableRotateBy(Vector3 by,float duration,RotateMode mode)
    DOBlendableLocalRotateBy(Vector3 by,float duration,RotateMode mode)
    DOBlendableScaleBy(Vector3 by,float duration)

PRO ONLY ➨ Spiral – no FROM

    DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)

Tween 这些是实际补间其他补间属性的快捷方式。我打赌你不认为你能做到这一点:P

    DOTimeScale(float toTimeScale, float duration)

Unity UI 4.6快捷方式

CanvasGroup(Unity UI 4.6)

    DOFade(float to, float duration)

Graphic (Unity UI 4.6)

    DOColor(Color to, float duration)
    DOFade(float to, float duration)

可混合的补间

    DOBlendableColor(Color to, float duration)

Image (Unity UI 4.6)

    DOColor(Color to, float duration)
    DOFade(float to, float duration)
    DOFillAmount(float to, float duration)
    DOGradientColor(Gradient to, float duration)

可混合的补间

    DOBlendableColor(Color to, float duration)

LayoutElement(Unity UI 4.6)

    DOFlexibleSize(Vector2 to,float duration,bool snapping)
    DOMinSize(Vector2 to,float duration,bool snapping)
    DOPreferredSize(Vector2 to,float duration,bool snapping)

Outline (Unity UI 4.6)

    DOColor(Color to, float duration)
    DOFade(float to, float duration)

RectTransform (Unity UI 4.6)

    DOAnchorMax(Vector2 to, float duration, bool snapping)
    DOAnchorMin(Vector2 to, float duration, bool snapping)
    DOAnchorPos(Vector2 to, float duration, bool snapping)
    DOAnchorPosX/DOAnchorPosY(float to, float duration, bool snapping)
    DOAnchorPos3D(Vector3 to, float duration, bool snapping)
    DOAnchorPos3DX/DOAnchorPos3DY/DOAnchorPos3DZ(float to, float duration, bool snapping)
    DOJumpAnchorPos(Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping)
    DOPivot(Vector2 to, float duration)
    DOPivotX/DOPivotY(float to, float duration)
    DOPunchAnchorPos(Vector2 punch, float duration, int vibrato, float elasticity, bool snapping)
    DOShakeAnchorPos(float duration, float/Vector3 strength, int vibrato, float randomness, bool snapping, bool fadeOut)
    DOSizeDelta(Vector2 to, float duration, bool snapping)

ScrollRect (Unity UI 4.6)

    DONormalizedPos(Vector2 to, float duration, bool snapping)
    DOHorizontalNormalizedPos(float to, float duration, bool snapping)
    DOVerticalPos(float to, float duration, bool snapping)

Slider (Unity UI 4.6)

    DOValue(float to, float duration, bool snapping = false)

Text (Unity UI 4.6)

    DOColor(Color to, float duration)
    DOFade(float to, float duration)
    DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)

可混合的补间

    DOBlendableColor(Color to, float duration)

PRO ONLY ➨ 2D Toolkit的快捷键

tk2dBaseSprite

    DOScale(Vector3 to, float duration)
    DOScaleX/Y/Z(float to, float duration)
    DOColor(Color to, float duration)
    DOFade(float to, float duration)

tk2dSlicedSprite

    DOScale(Vector2 to, float duration)
    DOScaleX/Y(float to, float duration)

tk2dTextMesh

    DOColor(Color to, float duration)
    DOFade(float to, float duration)
    DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)

PRO ONLY➨ TextMesh Pro的快捷键

TextMeshPro + TextMeshProUGUI

    DOScale(float to, float duration)
    DOColor(Color to, float duration)
    DOFaceColor(Color to, float duration)
    DOFaceFade(float to, float duration)
    DOFade(float to, float duration)
    DOFontSize(float to, float duration)
    DOGlowColor(Color to, float duration)
    DOMaxVisibleCharacters(int to, float duration)
    DOOutlineColor(Color to, float duration)
    DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)

C. 其他通用方法

这些是允许以特定方式补间值的其他通用方法。

这些也有FROM备用版本,除非另有说明。只需将From链接到Tweener,使补间表现为FROM补间而不是TO补间。

    static DOTween.Punch(getter, setter, Vector3 direction, float duration, int vibrato, float elasticity)
    static DOTween.Shake(getter, setter, float duration, float/Vector3 strength, int vibrato, float randomness, bool ignoreZAxis)
    static DOTween.ToAlpha(getter, setter, float to, float duration)
    static DOTween.ToArray(getter, setter, float to, float duration)
    static DOTween.ToAxis(getter, setter, float to, float duration, AxisConstraint axis)

虚拟补间

    static DOTween.To(setter,float startValue,float endValue,float duration)

4、创建序列

序列类似于Tweeners,但它们不是动画属性或值,而是将其他TweenersSequences作为一组动画。

序列可以包含在其他序列中,而不限制层次结构的深度。

排序的补间不必一个接一个。您可以使用Insert方法重叠补间。

补间(序列或Tweener)只能嵌套在单个其他序列中,这意味着您不能在多个序列中重用相同的补间。此外,主序列将控制其所有嵌套元素,并且您将无法单独控制嵌套补间(将序列视为电影时间轴,一旦它第一次启动就会变为固定)。

重要提示:不要使用空序列。

要创建序列,请执行以下两个步骤:

1.获取要使用的新序列并将其存储为引用

    static DOTween.Sequence()

2.将补间,间隔和回调添加到序列

请注意,所有这些方法都需要在序列开始之前应用(通常是在创建它之后的下一帧,除非它已暂停),否则它们将没有任何效果。

另请注意,任何嵌套的Tweener / Sequence都需要在将其添加到Sequence之前完全创建,因为之后它将被锁定。

延迟和循环(当不是无限时)甚至可以在嵌套的补间内工作。

    Append(Tween tween)
    AppendCallback(TweenCallback callback)
    AppendInterval(float interval)
    Insert(float atPosition, Tween tween)
    InsertCallback(float atPosition, TweenCallback callback)
    Join(Tween tween)
    Prepend(Tween tween)
    PrependCallback(TweenCallback callback)
    PrependInterval(float interval)

提示:您可以创建仅由回调构成的序列,并将它们用作计时器或类似的东西。

例子 创建序列

    // Grab a free Sequence to use
    Sequence mySequence = DOTween.Sequence();
    // Add a movement tween at the beginning
    mySequence.Append(transform.DOMoveX(45, 1));
    // Add a rotation tween as soon as the previous one is finished
    mySequence.Append(transform.DORotate(new Vector3(0,180,0), 1));
    // Delay the whole Sequence by 1 second
    mySequence.PrependInterval(1);
    // Insert a scale tween for the whole duration of the Sequence
    mySequence.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

与前面的示例相同,但使用链接(加上换行符以使事情更清晰):

    Sequence mySequence = DOTween.Sequence();
    mySequence.Append(transform.DOMoveX(45, 1))
        .Append(transform.DORotate(new Vector3(0,180,0), 1))
        .PrependInterval(1)
        .Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));

5、设置,选项和回调

在将设置应用于补间时,DOTween使用链接方法。或者,您可以更改将应用​​于所有新创建的补间的全局默认选项。

● 全局设置

常规设置

    static LogBehaviour DOTween.logBehaviour
    static bool DOTween.maxSmoothUnscaledTime
    static bool DOTween.showUnityEditorReport
    static float DOTween.timeScale
    static bool DOTween.useSafeMode
    static bool DOTween.useSmoothDeltaTime
    static DOTween.SetTweensCapacity(int maxTweeners, int maxSequences)

应用于所有新创建的补间的设置

    static bool DOTween.defaultAutoKill
    static AutoPlay DOTween.defaultAutoPlay
    static float DOTween.defaultEaseOvershootOrAmplitude
    static float DOTween.defaultEasePeriod
    static Ease DOTween.defaultEaseType
    static LoopType DOTween.defaultLoopType
    static bool DOTween.defaultRecyclable
    static bool DOTween.defaultTimeScaleIndependent
    static UpdateType DOTween.defaultUpdateType

● Tweener 和 Sequence 设置

实例属性

    float timeScale

链式设置

这些设置可以链接到所有类型的补间。 您还可以在补间运行时链接它们(除了SetLoopsSetAs

    SetAs(Tween tween \ TweenParams tweenParams)
    SetAutoKill(bool autoKillOnCompletion = true)
    SetEase(Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase)
    SetId(object id)
    SetLoops(int loops, LoopType loopType = LoopType.Restart)
    SetRecyclable(bool recyclable)
    SetRelative(bool isRelative = true)
    SetUpdate(UpdateType updateType, bool isIndependentUpdate = false)

链式回调

    OnComplete(TweenCallback callback)
    OnKill(TweenCallback callback)
    OnPlay(TweenCallback callback)
    OnPause(TweenCallback callback)
    OnRewind(TweenCallback callback)
    OnStart(TweenCallback callback)
    OnStepComplete(TweenCallback callback)
    OnUpdate(TweenCallback callback)
    OnWaypointChange(TweenCallback<int> callback)

顺便说一句,附加到嵌套补间的回调仍将以正确的顺序工作。

如果你想使用带参数的回调,lambdas来救援:

    // Callback without parameters
    transform.DOMoveX(4, 1).OnComplete(MyCallback);
    // Callback with parameters
    transform.DOMoveX(4, 1).OnComplete(()=>MyCallback(someParam, someOtherParam));

● 特定于Tweener的设置和选项

这些设置特定于Tweeners,对序列没有影响。 除了SetEase在补间运行时链接这些设置将不起作用。

    From(bool isRelative = false)
    SetDelay(float delay)
    SetSpeedBased(bool isSpeedBased = true)

SetOptions

一些Tweeners具有特定的特殊选项,可供您使用,具体取决于您补间的内容类型。这都是自动的:如果Tweener有特定选项,你会看到特定SetOptions方法存在给Tweener,否则你不会。这是魔法!

请注意,这些选项通常仅在通过通用方式创建补间时可用,而快捷方式的主要创建方法中已包含相同的选项。

需要记住的重要一点是,虽然所有其他设置可以按任何顺序链接在一起,但SetOptions 必须在补间创建功能之后立即链接,否则它将不再可用。

通用补间特定选项(已包含在相应的补间快捷方式中)

    Color tween ➨ SetOptions(bool alphaOnly)
    float tween ➨ SetOptions(bool snapping)
    Quaternion tween ➨ SetOptions(bool useShortest360Route)
    Rect tween ➨ SetOptions(bool snapping)
    String tween ➨ SetOptions(bool richTextEnabled, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
    Vector2/3/4 tween ➨ SetOptions(AxisConstraint constraint, bool snapping)
    Vector3Array tween ➨ SetOptions(bool snapping)

DOPath特定选项

    Path tween ➨ SetOptions(bool closePath, AxisConstraint lockPosition = AxisConstraint.None, AxisConstraint lockRotation = AxisConstraint.None)
    Path tween ➨ SetLookAt(Vector3 lookAtPosition/lookAtTarget/lookAhead, Vector3 forwardDirection, Vector3 up = Vector3.up)

● TweenParams

如果您之前使用过HOTween,则会知道TweenParms(现在称为TweenParams):它们用于存储您可以应用于多个补间的设置。与HOTween的区别在于它们根本不是必需的,因为现在设置链接直接在补间上完成。相反,它们只是作为额外的实用程序类。

要使用它,请创建一个新的TweenParams实例或Clear()现有实例,然后像使用常规补间链一样添加设置。要将它们应用于补间,请使用SetAs

    // Store settings for an infinite looping tween with elastic ease
    TweenParams tParms = new TweenParams().SetLoops(-1).SetEase(Ease.OutElastic);
    // Apply them to a couple of tweens
    transformA.DOMoveX(15, 1).SetAs(tParms);
    transformB.DOMoveY(10, 1).SetAs(tParms);

● 更多关于链接

需要明确的是,您不需要一次链接一件事,而是可以这样做:

    transform.DOMoveX(45, 1).SetDelay(2).SetEase(Ease.OutQuad).OnComplete(MyCallback);

6、控制补间

您有3种方法来操纵补间。它们共享相同的方法名称,除了具有附加DO前缀的快捷方式增强的方法名称。

A. 通过静态方法和过滤器

DOTween类包含许多允许您控制补间的静态方法。 它们都是“All”版本(如DOTween.KillAll),适用于所有现有补间,还有一个简单版本(DOTween.Kill(myTargetOrId)),带有一个参数,允许您通过补间的id或目标过滤操作(id通过SetId手动设置),当通过快捷方式创建补间时自动设置目标)。

静态方法还返回一个int,它表示实际上能够执行所请求操作的所有补间。

    // Pauses all tweens
    DOTween.PauseAll();
    // Pauses all tweens that have "badoom" as an id
    DOTween.Pause("badoom");
    // Pauses all tweens that have someTransform as a target
    DOTween.Pause(someTransform);

B. 直接来自补间 您可以从补间的引用中调用相同的方法,而不是使用静态方法。

    myTween.Pause();

C. 从快捷方式增强的参考 与上面相同,但您可以从快捷方式增强的对象中调用相同的方法。请记住,在这种情况下,方法名称有一个额外的DO前缀,以区别于常规对象方法。

    transform.DOPause();

● 控制方法

同样,请记住所有这些方法名称都由所有操作方式共享,但是在对象快捷方式的情况下,还有一个额外的DO前缀。

重要说明:请记住,要在补间结束后在补间上使用这些方法,必须禁用其autoKill行为,否则补间会在完成时自动终止。

    CompleteAll/Complete(bool withCallbacks = false)
    FlipAll/Flip()
    GotoAll/Goto(float to, bool andPlay = false)
    KillAll/Kill(bool complete = true, params object[] idsOrTargetsToExclude)
    PauseAll/Pause()
    PlayAll/Play()
    PlayBackwardsAll/PlayBackwards()
    PlayForwardAll/PlayForward()
    RestartAll/Restart(bool includeDelay = true, float changeDelayTo = -1)
    RewindAll/Rewind(bool includeDelay = true)
    SmoothRewindAll/SmoothRewind()
    TogglePauseAll/TogglePause()

● 特殊控制方法

所有补间都很常见

    ForceInit()

型特异性 这些是特殊的控制方法,仅适用于某些特定类型的补间

    GotoWaypoint(int waypointIndex, bool andPlay = false)

7、从补间获取数据

静态方法(DOTween)

    static List<Tween> PausedTweens()
    static List<Tween> PlayingTweens()
    static List<Tween> TweensById(object id, bool playingOnly = false)
    static List<Tween> TweensByTarget(object target, bool playingOnly = false)
    static bool IsTweening(object idOrTarget, bool alsoCheckIfPlaying = false)
    static int TotalPlayingTweens()

实例方法(Tween / Tweener / Sequence)

    float fullPosition
    int CompletedLoops()
    float Delay()
    float Duration(bool includeLoops = true)
    float Elapsed(bool includeLoops = true)
    float ElapsedDirectionalPercentage()
    float ElapsedPercentage(bool includeLoops = true)
    bool IsActive()
    bool IsBackwards()
    bool IsComplete()
    bool IsInitialized()
    bool IsPlaying()
    int Loops()

实例方法➨路径补间

    Vector3 PathGetPoint(float pathPercentage)
    Vector3 [] PathGetDrawPoints(int subdivisionsXSegment = 10float PathLength()

8、等待协同程序

Tweens附带了一组有用的YieldInstructions,你可以放在你的Coroutines中,这样你就可以等待一些事情发生。

如果您使用的是Unity 5.3或更高版本,则所有这些方法都将具有可选的bool参数,该参数允许返回a CustomYieldInstruction

    WaitForCompletion()
    WaitForElapsedLoops(int elapsedLoops)
    WaitForKill()
    WaitForPosition(float position)
    WaitForRewind()
    WaitForStart()

9、其他方法

静态方法(DOTween)

    static DOTween.Clear(bool destroy = falsestatic DOTween.ClearCachedTweens()
    static DOTween.Validate()
    static DOTween.ManualUpdate(float deltaTime,float unscaledDeltaTime)

实例方法(Tween / Tweener / Sequence) Tweener

    ChangeEndValue(newEndValue,float duration = -1bool snapStartValue = false)
    ChangeStartValue(newStartValue,float duration = -1)
    ChangeValues(newStartValue,newEndValue,float duration = -1

10、虚方法

注意:虚拟方法不能放在Sequences中。

    static Tweener DOVirtual.Float(float fromfloat to,float duration,TweenCallback <float> onVirtualUpdate)
    static float DOVirtual.EasedValue(float fromfloat to,float lifetimePercentage,Ease easeType \ AnimationCurve animCurve)
    static Tween DOVirtual.DelayedCall(float delay,TweenCallback callback,bool ignoreTimeScale = true

11、创建自定义插件

示例页面中的示例UnityPackage 显示了如何创建自定义插件等。

🔚